from PyQt5.QtCore import Qt
from PyQt5.QtWidgets import QLabel, QHBoxLayout, QWidget, QApplication, QProgressBar
import sys


class ProgressBarWithLabel(QWidget):
    def __init__(self):
        super().__init__()
        self.initUI()

    def initUI(self):
        # 创建进度条和标签用于显示进度值
        self.progressBar = QProgressBar(self)
        self.progressBar.setMaximum(100)
        self.progressBar.setValue(30)

        # 使用水平布局管理器将进度条和标签放置在同一行中
        layout = QHBoxLayout()
        layout.addWidget(self.progressBar)
        self.setLayout(layout)

        # 设置窗口标题和大小并显示窗口
        self.setWindowTitle('Progress Bar with Label')
        self.setGeometry(300, 300, 300, 80)  # 设置窗口大小和位置
        self.show()

    def updateProgress(self, value):
        # 更新进度条和标签的显示值
        self.progressBar.setValue(value)
        self.progressLabel.setText(f"{value}%")  # 更新标签显示的值，例如50%或100%等。
        QApplication.processEvents()  # 确保GUI更新。在某些情况下可能需要。


if __name__ == '__main__':
    app = QApplication(sys.argv)
    ex = ProgressBarWithLabel()
    ex.show()
    app.exec()